import { getUserChannels, getAllChannels } from '@/api/channel'

export default {
  namespaced: true,
  state: {
    // 我的频道数据
    channelList: [],
    // 所有频道数据
    allChannelList: []
  },
  mutations: {
    setChannelList(state, payload) {
      state.channelList = payload
    },
    setAllChannelList(state, payload) {
      state.allChannelList = payload
    },
    // 添加频道
    addChannelList(state, payload) {
      state.channelList.push(payload)
    },
    // 删除频道
    delChannelList(state, payload) {
      state.channelList = state.channelList.filter(
        (item) => item.id !== payload.id
      )
    }
  },
  actions: {
    async actions_getChannelList(context) {
      const {
        data: { channels }
      } = await getUserChannels()
      // console.log(channels)
      context.commit('setChannelList', channels)
    },
    async actions_getAllChannelList(context) {
      const {
        data: { channels }
      } = await getAllChannels()
      context.commit('setAllChannelList', channels)
    }
  },
  getters: {
    // optionsChannelList(state) {
    //   // 计算可选频道,全部频道减去我的频道
    //   return state.allChannelList.filter((item) => {
    //     const res = state.channelList.some((channel) => {
    //       return channel.id === item.id
    //     })
    //     console.log('res', res)
    //     // res为true表示筛选出来是和我的频道相同的，所以返回false,这样optionsChannelList就接收不到这个数据
    //     // 所以要接收到res为false的
    //     if (res) {
    //       return false
    //     } else {
    //       return true
    //     }
    //   })
    // }
    optionsChannelList(state) {
      // 计算可选频道,全部频道减去我的频道
      return state.allChannelList.filter(
        (item) => !state.channelList.some((channel) => channel.id === item.id)
        // res为true表示筛选出来是和我的频道相同的，所以返回false,这样optionsChannelList就接收不到这个数据
        // 所以要接收到res为false的
        // if (res) {
        //   return false
        // } else {
        //   return true
        // }
      )
    }
  }
}
